﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace NanoERP.Common
{
    /// <summary>
    /// 系统数据字典枚举
    /// </summary>
    [Serializable]
    public enum SysDicEnum
    {
        商品信息 = 1,
        基本单位 = 2,
        其他单位 = 3,
        所属目录 = 4,
        型号 = 5,
        规格 = 6,
        颜色 = 7,
        成本核算方法 = 8,
        职务岗位 = 9,
        往来单位类别 = 10,
        所属地区 = 11,
        经济类型 = 12,
        客户来源 = 13,
        所属行业 = 14,
        发货方式 = 15,
        经营类型 = 16,
        客户级别 = 17,
        客户状态 = 18,
        仓库类别 = 19,
        币种 = 20,
        开户银行 = 21,
        启用账套日期 = 22,
        是否已启用账套 = 23,
        发票类型 = 24,
        项目名称 = 25,
        调拨方式 = 26
    }

    /// <summary>
    /// 登陆方式
    /// </summary>
    [Serializable]
    public enum LoginTypeEnum
    {
        密码登录 = 0,
        USER_KEY登录,
        密码0xUSER_KEY登录
    }

    /// <summary>
    /// 性别枚举
    /// </summary>
    [Serializable]
    public enum GenderEnum
    {
        男 = 0,
        女
    }

    /// <summary>
    /// 政治面貌
    /// </summary>
    [Serializable]
    public enum PolitiEnum
    {
        团员 = 0,
        党员,
        群众,
        其他
    }

    /// <summary>
    /// 政治面貌
    /// </summary>
    [Serializable]
    public enum CultureEnum
    {
        本科 = 0,
        小学,
        初中,
        高中,
        中专,
        大专,
        研究生,
        博士,
        其他
    }

    /// <summary>
    /// 婚姻状况
    /// </summary>
    [Serializable]
    public enum MarriageEnum
    {
        未婚 = 0,
        已婚,
        离异,
        其他
    }

    /// <summary>
    /// 单位性质
    /// </summary>
    [Serializable]
    public enum ClientTypeEnum
    {
        供应商 = 0,
        客户,
        快递公司
    }

    /// <summary>
    /// 预设售价
    /// </summary>
    [Serializable]
    public enum PrepriceEnum
    {
        无 = 0,
        预设售价一,
        预设售价二,
        预设售价三,
        预设售价四,
        零售价
    }

    /// <summary>
    /// 预设折扣
    /// </summary>
    [Serializable]
    public enum PrediscountEnum
    {
        无 = 0,
        预设折扣一,
        预设折扣二,
        预设折扣三,
        预设折扣四
    }

    /// <summary>
    /// 单据状态
    /// </summary>
    [Serializable]
    public enum BillStateEnum
    {
        待审核 = 1,
        一级审核 = 2,
        红冲 = 3,
        作废 = 4,
        预审核 = 5,
        已审核 = 6
    }

    /// <summary>
    /// 单据执行状态
    /// </summary>
    [Serializable]
    public enum BillExuStateEnum
    {
        未完成 = 1,
        已完成=2
    }

    /// <summary>
    /// 枚举转换方法
    /// </summary>
    public class EnumUtil
    {
        /// <summary>
        /// 枚举类型转换成内存表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static DataTable Enum2Table<T>()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("NAME");

            string[] type = Enum.GetNames(typeof(T));

            foreach (string s in type)
            {
                DataRow dr = dt.NewRow();
                dr["ID"] = Convert.ToInt32(Enum.Parse(typeof(T), s, true));
                dr["NAME"] = s;

                dt.Rows.Add(dr);
            }

            return dt;
        }
    }
}
